Communicating sequential processes

En programmation concurrente[1], Communicating sequential processes (CSP) est une algèbre de processus permettant de modéliser l'interaction de systèmes.

CSP intègre un mécanisme de synchronisation basé sur le principe du rendez-vous (détaillé plus loin au travers de la commande d'entrée/sortie). Combinant ce mécanisme à une syntaxe simple et concise, CSP permet l'implémentation rapide des paradigmes classiques de la concurrence, tels que producteurs/consommateurs ou lecteurs/écrivains. Ce n'est pas un langage de programmation complet.

CSP fut décrit en premier par C. A. R. Hoare dans un article de 1978[2], mais a depuis évolué de façon substantielle. CSP a été mis en pratique industriellement comme un outil de spécification formelle de l'exécution concurrente de systèmes variés — tels que le T9000 Transputer[3] ou un système informatique de transaction commerciale sécurisé [4]. C'est un champ de recherche toujours actif.

  1. (en) A. W. Roscoe, The Theory and Practice of Concurrency, New York, Prentice Hall, , 565 p., poche (ISBN 978-0-13-674409-2, LCCN 97031217)
  2. (en) C. A. R. Hoare, « Communicating sequential processes », Communications of the ACM, vol. 21, no 8,‎ , p. 666–677 (DOI 10.1145/359576.359585)
  3. (en) G. Barrett, « Model checking in practice: The T9000 Virtual Channel Processor », IEEE Transactions on Software Engineering, vol. 21, no 2,‎ , p. 69–78 (DOI 10.1109/32.345823).
  4. (en) A Hall et R. Chapman, « Correctness by construction: Developing a commercial secure system », IEEE Software, vol. 19, no 1,‎ , p. 18–25 (DOI 10.1109/52.976937, lire en ligne [PDF])

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search